#ifndef _FIG_BOSS_LASER_H_
#define _FIG_BOSS_LASER_H_

class FIGBonePart;
class FIGEnemyBoss;

#include "ui/ui_sprite.h"
#include "math/counter.h"

class FIGBossLaser 
{
public:
	enum LASER_STATE
	{
		LASER_STATE_NONE,
		LASER_STATE_WARNING,
		LASER_STATE_EXPANDING,
		LASER_STATE_SHOOING,
		LASER_STATE_SHRINKING,
		LASER_STATE_C,

	};

	FIGBossLaser(
					FIGEnemyBoss* pBoss,
					FIGBonePart* pWarningBonepart1,
					FIGBonePart* pWarningBonepart2,
					float		SclaeWithoutGlow,
					COLOR		c,
					float		LaserScale

				);

	void						Tick(	float dt,
										const math::Vec2& LaserShootPos1,
										const math::Vec2& LaserShootPos2
										);
	void						Render(const math::Vec2& Offset,float Scale);
	void						RenderDebug(const math::Vec2& Offset,float Scale);
	void						Reset();
	void						StartWarningAndShoot();

	LASER_STATE					GetState() const { return m_LaserState; };

protected:

	void						HitTest_Laser();
	
	ui::UISprite				m_SpriteLaser;
	math::Vec2					m_SizeLaser;

	float						m_LaserSpritePosY;
	LASER_STATE					m_LaserState;
	float						m_LaserWidthScale;
	float						m_LaserShootTime;

	math::Counter				m_LaserWarningCounter;

	FIGEnemyBoss*				m_pBoss;
	float						m_SclaeWithoutGlow;

	FIGBonePart*				m_pWarningBonepart1;
	FIGBonePart*				m_pWarningBonepart2;

	math::Vec2					m_LaserShootPos1;
	math::Vec2					m_LaserShootPos2;
	COLOR						m_Color;
	float						m_LaserScale;

};


#endif